package com.dog.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dog.framework.core.model.JwtUser;
import com.dog.modules.system.domain.SysMenu;
import com.dog.modules.system.api.vo.SysMenuVO;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
* @author liuxk
* @description 针对表【sys_menu(菜单管理)】的数据库操作Service
* @createDate 2024-01-30 14:47:29
*/
public interface SysMenuService extends IService<SysMenu> {

    void save(SysMenuVO vo);

    void update(SysMenuVO vo);

    void delete(Long id);

    /**
     * 菜单列表
     *
     * @param type 菜单类型
     */
    List<SysMenuVO> getMenuList(Integer type);

    /**
     * 用户菜单列表
     *
     * @param user  用户
     * @param type 菜单类型
     */
    List<SysMenuVO> getUserMenuList(JwtUser user, Integer type);

    /**
     * 获取子菜单的数量
     * @param pid  父菜单ID
     */
    Long getSubMenuCount(Long pid);

    /**
     * 获取用户权限列表
     */
    Set<String> getUserAuthority(JwtUser user);

    Map<String,List<String>> initResourceRolesMap();
}
